
// <copyright file="UnsafeNativeMethods.cs" company="Subhadra Software Solutions">
//   
// </copyright>
// <summary>
//   The unsafe native methods.
// </summary>

namespace SubhadraSolutions.Sharp.Utils.Windows.Forms
{
    using System;
    using System.Runtime.CompilerServices;
    using System.Runtime.InteropServices;
    using System.Security;
    using System.Windows.Forms;

    /// <summary>
    /// The unsafe native methods.
    /// </summary>
    public class UnsafeNativeMethods
    {
        #region Constructors

        /// <summary>
        /// Prevents a default instance of the <see cref="UnsafeNativeMethods"/> class from being created.
        /// </summary>
        private UnsafeNativeMethods()
        {
        }

        #endregion Constructors

        #region Nested Interfaces

        /// <summary>
        /// The WebBrowserEvents2 interface.
        /// </summary>
        [ComImport]
        [TypeLibType((short)0x1010)]
        [InterfaceType((short)2)]
        [Guid("34A715A0-6587-11D0-924A-0020AFC7AC4D")]
        public interface DWebBrowserEvents2
        {
            #region Methods

            /// <summary>
            /// The before navigate 2.
            /// </summary>
            /// <param name="pDisp">
            /// The p disp.
            /// </param>
            /// <param name="URL">
            /// The url.
            /// </param>
            /// <param name="Flags">
            /// The flags.
            /// </param>
            /// <param name="TargetFrameName">
            /// The target frame name.
            /// </param>
            /// <param name="PostData">
            /// The post data.
            /// </param>
            /// <param name="Headers">
            /// The headers.
            /// </param>
            /// <param name="Cancel">
            /// The cancel.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(250)]
            void BeforeNavigate2([In] [MarshalAs(UnmanagedType.IDispatch)] object pDisp, [In] [MarshalAs(UnmanagedType.Struct)] ref object URL, [In] [MarshalAs(UnmanagedType.Struct)] ref object Flags, [In] [MarshalAs(UnmanagedType.Struct)] ref object TargetFrameName, [In] [MarshalAs(UnmanagedType.Struct)] ref object PostData, [In] [MarshalAs(UnmanagedType.Struct)] ref object Headers, [In] [Out] ref bool Cancel);

            /// <summary>
            /// The client to host window.
            /// </summary>
            /// <param name="CX">
            /// The cx.
            /// </param>
            /// <param name="CY">
            /// The cy.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x10c)]
            void ClientToHostWindow([In] [Out] ref int CX, [In] [Out] ref int CY);

            /// <summary>
            /// The command state change.
            /// </summary>
            /// <param name="Command">
            /// The command.
            /// </param>
            /// <param name="Enable">
            /// The enable.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x69)]
            void CommandStateChange([In] int Command, [In] bool Enable);

            /// <summary>
            /// The document complete.
            /// </summary>
            /// <param name="pDisp">
            /// The p disp.
            /// </param>
            /// <param name="URL">
            /// The url.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x103)]
            void DocumentComplete([In] [MarshalAs(UnmanagedType.IDispatch)] object pDisp, [In] [MarshalAs(UnmanagedType.Struct)] ref object URL);

            /// <summary>
            /// The download begin.
            /// </summary>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x6a)]
            void DownloadBegin();

            /// <summary>
            /// The download complete.
            /// </summary>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x68)]
            void DownloadComplete();

            /// <summary>
            /// The file download.
            /// </summary>
            /// <param name="Cancel">
            /// The cancel.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(270)]
            void FileDownload([In] [Out] ref bool Cancel);

            /// <summary>
            /// The navigate complete 2.
            /// </summary>
            /// <param name="pDisp">
            /// The p disp.
            /// </param>
            /// <param name="URL">
            /// The url.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xfc)]
            void NavigateComplete2([In] [MarshalAs(UnmanagedType.IDispatch)] object pDisp, [In] [MarshalAs(UnmanagedType.Struct)] ref object URL);

            /// <summary>
            /// The navigate error.
            /// </summary>
            /// <param name="pDisp">
            /// The p disp.
            /// </param>
            /// <param name="URL">
            /// The url.
            /// </param>
            /// <param name="Frame">
            /// The frame.
            /// </param>
            /// <param name="StatusCode">
            /// The status code.
            /// </param>
            /// <param name="Cancel">
            /// The cancel.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x10f)]
            void NavigateError([In] [MarshalAs(UnmanagedType.IDispatch)] object pDisp, [In] [MarshalAs(UnmanagedType.Struct)] ref object URL, [In] [MarshalAs(UnmanagedType.Struct)] ref object Frame, [In] [MarshalAs(UnmanagedType.Struct)] ref object StatusCode, [In] [Out] ref bool Cancel);

            /// <summary>
            /// The new window 2.
            /// </summary>
            /// <param name="ppDisp">
            /// The pp disp.
            /// </param>
            /// <param name="Cancel">
            /// The cancel.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xfb)]
            void NewWindow2([In] [Out] [MarshalAs(UnmanagedType.IDispatch)] ref object ppDisp, [In] [Out] ref bool Cancel);

            /// <summary>
            /// The new window 3.
            /// </summary>
            /// <param name="ppDisp">
            /// The pp disp.
            /// </param>
            /// <param name="Cancel">
            /// The cancel.
            /// </param>
            /// <param name="dwFlags">
            /// The dw flags.
            /// </param>
            /// <param name="bstrUrlContext">
            /// The bstr url context.
            /// </param>
            /// <param name="bstrUrl">
            /// The bstr url.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x111)]
            void NewWindow3([In] [Out] [MarshalAs(UnmanagedType.IDispatch)] ref object ppDisp, [In] [Out] ref bool Cancel, [In] uint dwFlags, [In] [MarshalAs(UnmanagedType.BStr)] string bstrUrlContext, [In] [MarshalAs(UnmanagedType.BStr)] string bstrUrl);

            /// <summary>
            /// The on full screen.
            /// </summary>
            /// <param name="FullScreen">
            /// The full screen.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x102)]
            void OnFullScreen([In] bool FullScreen);

            /// <summary>
            /// The on menu bar.
            /// </summary>
            /// <param name="MenuBar">
            /// The menu bar.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x100)]
            void OnMenuBar([In] bool MenuBar);

            /// <summary>
            /// The on quit.
            /// </summary>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xfd)]
            void OnQuit();

            /// <summary>
            /// The on status bar.
            /// </summary>
            /// <param name="StatusBar">
            /// The status bar.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x101)]
            void OnStatusBar([In] bool StatusBar);

            /// <summary>
            /// The on theater mode.
            /// </summary>
            /// <param name="TheaterMode">
            /// The theater mode.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(260)]
            void OnTheaterMode([In] bool TheaterMode);

            /// <summary>
            /// The on tool bar.
            /// </summary>
            /// <param name="ToolBar">
            /// The tool bar.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xff)]
            void OnToolBar([In] bool ToolBar);

            /// <summary>
            /// The on visible.
            /// </summary>
            /// <param name="Visible">
            /// The visible.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xfe)]
            void OnVisible([In] bool Visible);

            /// <summary>
            /// The print template instantiation.
            /// </summary>
            /// <param name="pDisp">
            /// The p disp.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xe1)]
            void PrintTemplateInstantiation([In] [MarshalAs(UnmanagedType.IDispatch)] object pDisp);

            /// <summary>
            /// The print template teardown.
            /// </summary>
            /// <param name="pDisp">
            /// The p disp.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xe2)]
            void PrintTemplateTeardown([In] [MarshalAs(UnmanagedType.IDispatch)] object pDisp);

            /// <summary>
            /// The privacy impacted state change.
            /// </summary>
            /// <param name="bImpacted">
            /// The b impacted.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x110)]
            void PrivacyImpactedStateChange([In] bool bImpacted);

            /// <summary>
            /// The progress change.
            /// </summary>
            /// <param name="Progress">
            /// The progress.
            /// </param>
            /// <param name="ProgressMax">
            /// The progress max.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x6c)]
            void ProgressChange([In] int Progress, [In] int ProgressMax);

            /// <summary>
            /// The property change.
            /// </summary>
            /// <param name="szProperty">
            /// The sz property.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x70)]
            void PropertyChange([In] [MarshalAs(UnmanagedType.BStr)] string szProperty);

            /// <summary>
            /// The set secure lock icon.
            /// </summary>
            /// <param name="SecureLockIcon">
            /// The secure lock icon.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x10d)]
            void SetSecureLockIcon([In] int SecureLockIcon);

            /// <summary>
            /// The status text change.
            /// </summary>
            /// <param name="Text">
            /// The text.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x66)]
            void StatusTextChange([In] [MarshalAs(UnmanagedType.BStr)] string Text);

            /// <summary>
            /// The title change.
            /// </summary>
            /// <param name="Text">
            /// The text.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x71)]
            void TitleChange([In] [MarshalAs(UnmanagedType.BStr)] string Text);

            /// <summary>
            /// The update page status.
            /// </summary>
            /// <param name="pDisp">
            /// The p disp.
            /// </param>
            /// <param name="nPage">
            /// The n page.
            /// </param>
            /// <param name="fDone">
            /// The f done.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0xe3)]
            void UpdatePageStatus([In] [MarshalAs(UnmanagedType.IDispatch)] object pDisp, [In] [MarshalAs(UnmanagedType.Struct)] ref object nPage, [In] [MarshalAs(UnmanagedType.Struct)] ref object fDone);

            /// <summary>
            /// The window closing.
            /// </summary>
            /// <param name="IsChildWindow">
            /// The is child window.
            /// </param>
            /// <param name="Cancel">
            /// The cancel.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x107)]
            void WindowClosing([In] bool IsChildWindow, [In] [Out] ref bool Cancel);

            /// <summary>
            /// The window set height.
            /// </summary>
            /// <param name="Height">
            /// The height.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x10b)]
            void WindowSetHeight([In] int Height);

            /// <summary>
            /// The window set left.
            /// </summary>
            /// <param name="Left">
            /// The left.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x108)]
            void WindowSetLeft([In] int Left);

            /// <summary>
            /// The window set resizable.
            /// </summary>
            /// <param name="Resizable">
            /// The resizable.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x106)]
            void WindowSetResizable([In] bool Resizable);

            /// <summary>
            /// The window set top.
            /// </summary>
            /// <param name="Top">
            /// The top.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x109)]
            void WindowSetTop([In] int Top);

            /// <summary>
            /// The window set width.
            /// </summary>
            /// <param name="Width">
            /// The width.
            /// </param>
            [PreserveSig]
            [MethodImpl(MethodImplOptions.InternalCall, MethodCodeType = MethodCodeType.Runtime)]
            [DispId(0x10a)]
            void WindowSetWidth([In] int Width);

            #endregion Methods
        }

        /// <summary>
        /// The WebBrowser2 interface.
        /// </summary>
        [ComImport]
        [SuppressUnmanagedCodeSecurity]
        [TypeLibType(TypeLibTypeFlags.FOleAutomation | (TypeLibTypeFlags.FDual | TypeLibTypeFlags.FHidden))]
        [Guid("D30C1661-CDAF-11d0-8A3E-00C04FC9E26E")]
        public interface IWebBrowser2
        {
            #region Properties

            /// <summary>
            /// Gets or sets a value indicating whether address bar.
            /// </summary>
            [DispId(0x22b)]
            bool AddressBar { get; set; }

            /// <summary>
            /// Gets the application.
            /// </summary>
            [DispId(200)]
            object Application { [return: MarshalAs(UnmanagedType.IDispatch)] get; }

            /// <summary>
            /// Gets a value indicating whether busy.
            /// </summary>
            [DispId(0xd4)]
            bool Busy { get; }

            /// <summary>
            /// Gets the container.
            /// </summary>
            [DispId(0xca)]
            object Container { [return: MarshalAs(UnmanagedType.IDispatch)] get; }

            /// <summary>
            /// Gets the document.
            /// </summary>
            [DispId(0xcb)]
            object Document { [return: MarshalAs(UnmanagedType.IDispatch)] get; }

            /// <summary>
            /// Gets the full name.
            /// </summary>
            [DispId(400)]
            string FullName { get; }

            /// <summary>
            /// Gets or sets a value indicating whether full screen.
            /// </summary>
            [DispId(0x197)]
            bool FullScreen { get; set; }

            /// <summary>
            /// Gets or sets the height.
            /// </summary>
            [DispId(0xd1)]
            int Height { get; set; }

            /// <summary>
            /// Gets the hwnd.
            /// </summary>
            [DispId(-515)]
            int HWND { get; }

            /// <summary>
            /// Gets or sets the left.
            /// </summary>
            [DispId(0xce)]
            int Left { get; set; }

            /// <summary>
            /// Gets the location name.
            /// </summary>
            [DispId(210)]
            string LocationName { get; }

            /// <summary>
            /// Gets the location url.
            /// </summary>
            [DispId(0xd3)]
            string LocationURL { get; }

            /// <summary>
            /// Gets or sets a value indicating whether menu bar.
            /// </summary>
            [DispId(0x196)]
            bool MenuBar { get; set; }

            /// <summary>
            /// Gets the name.
            /// </summary>
            [DispId(0)]
            string Name { get; }

            /// <summary>
            /// Gets or sets a value indicating whether offline.
            /// </summary>
            [DispId(550)]
            bool Offline { get; set; }

            /// <summary>
            /// Gets the parent.
            /// </summary>
            [DispId(0xc9)]
            object Parent { [return: MarshalAs(UnmanagedType.IDispatch)] get; }

            /// <summary>
            /// Gets the path.
            /// </summary>
            [DispId(0x191)]
            string Path { get; }

            /// <summary>
            /// Gets the ready state.
            /// </summary>
            [DispId(-525)]
            WebBrowserReadyState ReadyState { get; }

            /// <summary>
            /// Gets or sets a value indicating whether register as browser.
            /// </summary>
            [DispId(0x228)]
            bool RegisterAsBrowser { get; set; }

            /// <summary>
            /// Gets or sets a value indicating whether register as drop target.
            /// </summary>
            [DispId(0x229)]
            bool RegisterAsDropTarget { get; set; }

            /// <summary>
            /// Gets or sets a value indicating whether resizable.
            /// </summary>
            [DispId(0x22c)]
            bool Resizable { get; set; }

            /// <summary>
            /// Gets or sets a value indicating whether silent.
            /// </summary>
            [DispId(0x227)]
            bool Silent { get; set; }

            /// <summary>
            /// Gets or sets a value indicating whether status bar.
            /// </summary>
            [DispId(0x193)]
            bool StatusBar { get; set; }

            /// <summary>
            /// Gets or sets the status text.
            /// </summary>
            [DispId(0x194)]
            string StatusText { get; set; }

            /// <summary>
            /// Gets or sets a value indicating whether theater mode.
            /// </summary>
            [DispId(0x22a)]
            bool TheaterMode { get; set; }

            /// <summary>
            /// Gets or sets the tool bar.
            /// </summary>
            [DispId(0x195)]
            int ToolBar { get; set; }

            /// <summary>
            /// Gets or sets the top.
            /// </summary>
            [DispId(0xcf)]
            int Top { get; set; }

            /// <summary>
            /// Gets a value indicating whether top level container.
            /// </summary>
            [DispId(0xcc)]
            bool TopLevelContainer { get; }

            /// <summary>
            /// Gets the type.
            /// </summary>
            [DispId(0xcd)]
            string Type { get; }

            /// <summary>
            /// Gets or sets a value indicating whether visible.
            /// </summary>
            [DispId(0x192)]
            bool Visible { get; set; }

            /// <summary>
            /// Gets or sets the width.
            /// </summary>
            [DispId(0xd0)]
            int Width { get; set; }

            #endregion Properties

            #region Methods

            /// <summary>
            /// The client to window.
            /// </summary>
            /// <param name="pcx">
            /// The pcx.
            /// </param>
            /// <param name="pcy">
            /// The pcy.
            /// </param>
            [DispId(0x12d)]
            void ClientToWindow(out int pcx, out int pcy);

            /// <summary>
            /// The exec wb.
            /// </summary>
            /// <param name="cmdID">
            /// The cmd id.
            /// </param>
            /// <param name="cmdexecopt">
            /// The cmdexecopt.
            /// </param>
            /// <param name="pvaIn">
            /// The pva in.
            /// </param>
            /// <param name="pvaOut">
            /// The pva out.
            /// </param>
            [DispId(0x1f6)]
            void ExecWB([In] NativeMethods.OLECMDID cmdID, [In] NativeMethods.OLECMDEXECOPT cmdexecopt, ref object pvaIn, IntPtr pvaOut);

            /// <summary>
            /// The get property.
            /// </summary>
            /// <param name="property">
            /// The property.
            /// </param>
            /// <returns>
            /// The <see cref="object"/>.
            /// </returns>
            [DispId(0x12f)]
            object GetProperty([In] string property);

            /// <summary>
            /// The go back.
            /// </summary>
            [DispId(100)]
            void GoBack();

            /// <summary>
            /// The go forward.
            /// </summary>
            [DispId(0x65)]
            void GoForward();

            /// <summary>
            /// The go home.
            /// </summary>
            [DispId(0x66)]
            void GoHome();

            /// <summary>
            /// The go search.
            /// </summary>
            [DispId(0x67)]
            void GoSearch();

            /// <summary>
            /// The navigate.
            /// </summary>
            /// <param name="Url">
            /// The url.
            /// </param>
            /// <param name="flags">
            /// The flags.
            /// </param>
            /// <param name="targetFrameName">
            /// The target frame name.
            /// </param>
            /// <param name="postData">
            /// The post data.
            /// </param>
            /// <param name="headers">
            /// The headers.
            /// </param>
            [DispId(0x68)]
            void Navigate([In] string Url, [In] ref object flags, [In] ref object targetFrameName, [In] ref object postData, [In] ref object headers);

            /// <summary>
            /// The navigate 2.
            /// </summary>
            /// <param name="URL">
            /// The url.
            /// </param>
            /// <param name="flags">
            /// The flags.
            /// </param>
            /// <param name="targetFrameName">
            /// The target frame name.
            /// </param>
            /// <param name="postData">
            /// The post data.
            /// </param>
            /// <param name="headers">
            /// The headers.
            /// </param>
            [DispId(500)]
            void Navigate2([In] ref object URL, [In] ref object flags, [In] ref object targetFrameName, [In] ref object postData, [In] ref object headers);

            /// <summary>
            /// The put property.
            /// </summary>
            /// <param name="property">
            /// The property.
            /// </param>
            /// <param name="vtValue">
            /// The vt value.
            /// </param>
            [DispId(0x12e)]
            void PutProperty([In] string property, [In] object vtValue);

            /// <summary>
            /// The query status wb.
            /// </summary>
            /// <param name="cmdID">
            /// The cmd id.
            /// </param>
            /// <returns>
            /// The <see cref="OLECMDF"/>.
            /// </returns>
            [DispId(0x1f5)]
            NativeMethods.OLECMDF QueryStatusWB([In] NativeMethods.OLECMDID cmdID);

            /// <summary>
            /// The quit.
            /// </summary>
            [DispId(300)]
            void Quit();

            /// <summary>
            /// The refresh.
            /// </summary>
            [DispId(-550)]
            void Refresh();

            /// <summary>
            /// The refresh 2.
            /// </summary>
            /// <param name="level">
            /// The level.
            /// </param>
            [DispId(0x69)]
            void Refresh2([In] ref object level);

            /// <summary>
            /// The show browser bar.
            /// </summary>
            /// <param name="pvaClsid">
            /// The pva clsid.
            /// </param>
            /// <param name="pvarShow">
            /// The pvar show.
            /// </param>
            /// <param name="pvarSize">
            /// The pvar size.
            /// </param>
            [DispId(0x1f7)]
            void ShowBrowserBar([In] ref object pvaClsid, [In] ref object pvarShow, [In] ref object pvarSize);

            /// <summary>
            /// The stop.
            /// </summary>
            [DispId(0x6a)]
            void Stop();

            #endregion Methods
        }

        #endregion Nested Interfaces
    }
}
